/**
 * 项目名：	Rumba Plan
 * 
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2006，所有权利保留。
 * 
 * 文件名：	PromptMgr.java
 * 模块说明：	
 * 修改历史：
 * 2006-11-14 - lxm - 创建。
 */
package com.hd123.rumba.prompt;

import java.util.Date;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;

import com.hd123.rumba.domain.IDomain;
import com.hd123.rumba.exception.BusinessException;
import com.hd123.rumba.runtime.Manager;
import com.hd123.rumba.runtime.OperateContext;

/**
 * 提示信息 | 管理员 | 实现类
 * 
 * @author lxm
 * 
 */
public class PromptMgr extends Manager implements IPromptMgr {
  
  public static final String CAPTION_MANAGER = "提示信息管理员";

  public PromptMgr() {
    super();
    this.registryClass(IPrompt.class.getName(), Prompt.class.getName());
  }

  public IPrompt createPrompt(IDomain domain) throws BusinessException {
    this.checkParameterNotNull(domain, "domain");

    IPrompt prompt = new Prompt();
    prompt.setDomain(domain);
    prompt.setState(CPrompt.VALUE_STATE_NORMAL);
    return prompt;
  }

  public void save(Session ses, IPrompt prompt, OperateContext operate) throws BusinessException, HibernateException {
    this.checkParameterNotNull(prompt, "prompt");
    this.checkParameterNotNull(operate, "operate");

    prompt.setLastModified(new Date());
    prompt.setLastModifier(operate.getOperator().getNameCode());
    ses.saveOrUpdate(prompt);
  }

  public void remove(IPrompt prompt) throws BusinessException, HibernateException {
    this.checkParameterNotNull(prompt, "prompt");
    getSession().delete(prompt);
  }

  public IPrompt getPrompt(String uuid) throws BusinessException, HibernateException {
    return (IPrompt) getSession().get(IPrompt.class, uuid);
  }

}
